package com.hyt.it.ogt.ykcj.domain.grade;

import java.math.BigDecimal;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;
import com.hyt.it.ogt.ykcj.common.utils.IdUtils;

/**
 * 公务员考试合格及通过分析对象 servant_pass_analysis_data
 *
 * @author admin
 * @date 2021-10-13
 */
public class ServantPassAnalysisData extends BaseEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 统计id
   */
  private String id;

  /**
   * 职位层级
   */
  private String positionTier;
  /**
   * 职位层级
   */
  @Excel(name = "职位层级名称")
  private String positionTierName;

  /**
   * 职位类别
   */
  private String zwlb;

  /**
   * 职位类别名称
   */
  @Excel(name = "职位类别名称")
  private String zwlbName;

  /**
   * 考试id
   */
  @Excel(name = "考试id")
  private String examId;

  /**
   * 考试名称配置id
   */
  @Excel(name = "考试名称配置id")
  private String examNameConfigId;

  /**
   * 考试年份
   */
  @Excel(name = "考试年份")
  private String examYear;

  /**
   * 报名人数
   */
  @Excel(name = "报名人数")
  private Long registrationNum;

  /**
   * 实考人数
   */
  @Excel(name = "实考人数")
  private Long examineeNum;

  /**
   * 男实考人数
   */
  @Excel(name = "男实考人数")
  private Long maleExamineeNum;

  /**
   * 男实考占比
   */
  @Excel(name = "男实考占比")
  private BigDecimal maleExamRate;

  /**
   * 实考率
   */
  @Excel(name = "实考率")
  private BigDecimal examRate;

  /**
   * 合格人数
   */
  @Excel(name = "合格人数")
  private Long passNum;

  /**
   * 男合格人数
   */
  @Excel(name = "男合格人数")
  private Long malePassNum;

  /**
   * 男合格占比
   */
  @Excel(name = "男合格占比")
  private BigDecimal malePassRate;

  /**
   * 合格率
   */
  @Excel(name = "合格率")
  private BigDecimal passRate;

  public String getPositionTierName() {
    return positionTierName;
  }

  public void setPositionTierName(String positionTierName) {
    this.positionTierName = positionTierName;
  }

  public String getZwlbName() {
    return zwlbName;
  }

  public void setZwlbName(String zwlbName) {
    this.zwlbName = zwlbName;
  }

  public ServantPassAnalysisData init(String examYear,String examNameConfigId,String positionTier,String zwlb) {
    setId(IdUtils.generateId());
    setZwlb(zwlb);
    setPositionTier(positionTier);
    setExamYear(examYear);
    setExamNameConfigId(examNameConfigId);
    setExamineeNum(0L);
    setMaleExamineeNum(0L);
    setMaleExamRate(new BigDecimal(0));
    setExamRate(new BigDecimal(0));
    setPassNum(0L);
    setMalePassRate(new BigDecimal(0));
    setPassRate(new BigDecimal(0));
    return this;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getId() {
    return id;
  }

  public void setPositionTier(String positionTier) {
    this.positionTier = positionTier;
  }

  public String getPositionTier() {
    return positionTier;
  }

  public void setZwlb(String zwlb) {
    this.zwlb = zwlb;
  }

  public String getZwlb() {
    return zwlb;
  }


  public void setExamId(String examId) {
    this.examId = examId;
  }

  public String getExamId() {
    return examId;
  }

  public void setExamNameConfigId(String examNameConfigId) {
    this.examNameConfigId = examNameConfigId;
  }

  public String getExamNameConfigId() {
    return examNameConfigId;
  }

  public void setExamYear(String examYear) {
    this.examYear = examYear;
  }

  public String getExamYear() {
    return examYear;
  }

  public void setRegistrationNum(Long registrationNum) {
    this.registrationNum = registrationNum;
  }

  public Long getRegistrationNum() {
    return registrationNum;
  }

  public void setExamineeNum(Long examineeNum) {
    this.examineeNum = examineeNum;
  }

  public Long getExamineeNum() {
    return examineeNum;
  }

  public void setMaleExamineeNum(Long maleExamineeNum) {
    this.maleExamineeNum = maleExamineeNum;
  }

  public Long getMaleExamineeNum() {
    return maleExamineeNum;
  }

  public void setMaleExamRate(BigDecimal maleExamRate) {
    this.maleExamRate = maleExamRate;
  }

  public BigDecimal getMaleExamRate() {
    return maleExamRate;
  }

  public void setExamRate(BigDecimal examRate) {
    this.examRate = examRate;
  }

  public BigDecimal getExamRate() {
    return examRate;
  }

  public void setPassNum(Long passNum) {
    this.passNum = passNum;
  }

  public Long getPassNum() {
    return passNum;
  }

  public void setMalePassNum(Long malePassNum) {
    this.malePassNum = malePassNum;
  }

  public Long getMalePassNum() {
    return malePassNum;
  }

  public void setMalePassRate(BigDecimal malePassRate) {
    this.malePassRate = malePassRate;
  }

  public BigDecimal getMalePassRate() {
    return malePassRate;
  }

  public void setPassRate(BigDecimal passRate) {
    this.passRate = passRate;
  }

  public BigDecimal getPassRate() {
    return passRate;
  }

  @Override
  public String toString() {
    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
        .append("id", getId())
        .append("positionTier", getPositionTier())
        .append("zwlb", getZwlb())
        .append("examId", getExamId())
        .append("examNameConfigId", getExamNameConfigId())
        .append("examYear", getExamYear())
        .append("registrationNum", getRegistrationNum())
        .append("examineeNum", getExamineeNum())
        .append("maleExamineeNum", getMaleExamineeNum())
        .append("maleExamRate", getMaleExamRate())
        .append("examRate", getExamRate())
        .append("passNum", getPassNum())
        .append("malePassNum", getMalePassNum())
        .append("malePassRate", getMalePassRate())
        .append("passRate", getPassRate())
        .append("createBy", getCreateBy())
        .append("createTime", getCreateTime())
        .append("updateBy", getUpdateBy())
        .append("updateTime", getUpdateTime())
        .toString();
  }
}
